#ifndef Visual_h__
#define Visual_h__
#include <list>
#include <Windows.h>
#include "Render/Animate/Animate.h"
class Animate;
class RenderMessage;

typedef std::list<RenderMessage*> RenderMessageList;
typedef std::list<Animate*> AnimateList;


class Visual
{
public:
	Visual(int type);
	void Render(int delta);
	void AddRenderMessage(RenderMessage* pMsg);
	void DoRenderWalk(RenderMessage* pMsg, int delta);
	void DoRenderNone(RenderMessage* pMsg, int delta);
	void DoRenderAttack(RenderMessage* pMsg, int delta);
	void DoRenderHurt(RenderMessage* pMsg, int delta);
	void AddAnimate(Animate* pAnimate);
	void SetRenderData(const RenderData& data);
protected:
	RenderMessageList m_renderMsgList;
	AnimateList m_animateList;
protected:
	int m_elapsedTime;
	RenderData m_renderData;
};


#endif // Visual_h__